"""
功能描述 ：
编写人 ：
编写日期 ：
实现逻辑 ：
    1- ......
        1.1- ......
    2- ......
        2.1- ......
"""
#局部变量
def testa():
    a = 100

    print(a)

testa()
#全局变量
a = 100
def testa():
    print(a)
def testB():
    print(a)

testa()
testB()
# #修改全局变量
a = 100
def testa():
    print(a)
def testB():
    a = 200
    print(a)

testa()
testB()
# #
# a = 100
# def testa():
#     print(a)
#
#
# def testB():
#     global a
#     a = 200
#     print(a)
#
# testa()
# testB()
# 函数的返回多个值
# #返回单个值
# def add_sum():
#     return 1
#     return 2
# result = add_sum()
# print(result)
# #返回多个值
# def add_sum1():
#     return 1,2,3,4,5,6,7,8,9
# result = add_sum1()
# print(result)
# #函数参数
#
# #1.位置参数
def usr_info(name,age,gender):
    print(f'您的名字是{name},年龄{age},性别是{gender}')

usr_info('songyu','man','boy')

#关键字参数
def usr_info(name,age,gender,nc):
    print(f'您的名字是{name},年龄{age},性别是{gender},国籍{nc}')

usr_info('songyu','man','boy',nc='m78星云')#函数调⽤时，如果有位置参数时，位置参数必须在关键字参数的前⾯，但关键字参数之间不存在先后顺序。
usr_info(name='songyu',age=18,gender='boy',nc='m78星云')

#缺省参数
def usr_info(name,age,gender,nc = '地球'):
    print(f'您的名字是{name},年龄{age},性别是{gender},国籍{nc}')

usr_info('songyu','man','boy')
usr_info('songyu','man','boy',nc='m78星云')

#不定长参数：⽤于不确定调⽤的时候会传递多少个参数(不传参也可以)的场景
def user_info(*args):
    print(*args)

user_info("我们口号：云鹤九霄。龙腾四海")
user_info('name','age','eax')
#包裹关键字传递
def user_info(**kwargs):
    print(kwargs)
user_info(name = 'tom',age= 18)
dict1 = user_info(name = 'tom',age= 18)
print(dict1)

#拆包和交换变量值
#拆包
#拆包-元组
def return_num():
    return 100,200

num1,num2 = return_num()

print(num1)
print(num2)
#拆包-字典

dict1 = {'name': 'TOM', 'age': 18}
a, b = dict1
print(a)
print(b)

print(dict1[a])
print(dict1[b])
#交换变量值